#ifndef __OLORIN_COLOR__
#define __OLORIN_COLOR__

#include <DLL.hpp>
#include <Vector3.hpp>

namespace Olorin
{
	namespace Framework
	{
		class DLLAPI Color
		{
		private:
			unsigned char channels[4];
		public:
			Color();
			Color(const Color& source);
			Color(const Vector3& source);
			Color(const Vector4& source);
			Color(const unsigned char& r, const unsigned char& g, const unsigned char& b, const unsigned char& a);

			unsigned char& operator [](const int& index);

			const Color& operator *=(const Color& rhs);
			const Color& operator +=(const Color& rhs);
			const Color& operator -=(const Color& rhs);
		};

		const Color operator +(const Color& lhs, const Color& rhs);
		const Color operator -(const Color& lhs, const Color& rhs);
		const Color operator *(const Color& lhs, const Color& rhs);
	}
}

#endif